package com.cdtu.stocksage.goods.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.cdtu.stocksage.common.annotation.Excel;
import com.cdtu.stocksage.common.core.domain.BaseEntity;

/**
 * 物资出库记录对象 ers_goods_out_record
 * 
 * @author SL
 * @date 2025-03-12
 */
public class ErsGoodsOutRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    private String warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 调拨单号 */
    @Excel(name = "调拨单号")
    private String allocateNumber;

    /** 物资用途 */
    @Excel(name = "物资用途")
    private String purpose;

    /** 物资名称 */
    @Excel(name = "物资名称")
    private String goodsName;

    /** 物资图片 */
    @Excel(name = "物资图片")
    private String goodsPic;

    /** 物资去向 */
    @Excel(name = "物资去向")
    private Long outTo;

    /** 领取单位 */
    @Excel(name = "领取单位")
    private String depart;

    /** 出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outTime;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String address;

    /** 领取人 */
    @Excel(name = "领取人")
    private String receiveUser;

    /** 领取人单位 */
    @Excel(name = "领取人单位")
    private String receiveUserUnit;

    /** 领取人职务 */
    @Excel(name = "领取人职务")
    private String receiveUserPosition;

    /** 领取人电话 */
    @Excel(name = "领取人电话")
    private String receiveUserPhone;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 出库人ID */
    @Excel(name = "出库人ID")
    private String userId;

    /** 出库人姓名 */
    @Excel(name = "出库人姓名")
    private String userName;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private Integer status;

    /** 审核结果 */
    @Excel(name = "审核结果")
    private String apprResult;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private String apprUserId;

    /** 审核人姓名 */
    @Excel(name = "审核人姓名")
    private String apprUserName;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date apprTime;

    /** 删除状态 */
    private Integer delFlag;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setWarehouseId(String warehouseId) 
    {
        this.warehouseId = warehouseId;
    }

    public String getWarehouseId() 
    {
        return warehouseId;
    }

    public void setWarehouseName(String warehouseName) 
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() 
    {
        return warehouseName;
    }

    public void setAllocateNumber(String allocateNumber) 
    {
        this.allocateNumber = allocateNumber;
    }

    public String getAllocateNumber() 
    {
        return allocateNumber;
    }

    public void setPurpose(String purpose) 
    {
        this.purpose = purpose;
    }

    public String getPurpose() 
    {
        return purpose;
    }

    public void setGoodsName(String goodsName) 
    {
        this.goodsName = goodsName;
    }

    public String getGoodsName() 
    {
        return goodsName;
    }

    public void setGoodsPic(String goodsPic) 
    {
        this.goodsPic = goodsPic;
    }

    public String getGoodsPic() 
    {
        return goodsPic;
    }

    public void setOutTo(Long outTo) 
    {
        this.outTo = outTo;
    }

    public Long getOutTo() 
    {
        return outTo;
    }

    public void setDepart(String depart) 
    {
        this.depart = depart;
    }

    public String getDepart() 
    {
        return depart;
    }

    public void setOutTime(Date outTime) 
    {
        this.outTime = outTime;
    }

    public Date getOutTime() 
    {
        return outTime;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setReceiveUser(String receiveUser) 
    {
        this.receiveUser = receiveUser;
    }

    public String getReceiveUser() 
    {
        return receiveUser;
    }

    public void setReceiveUserUnit(String receiveUserUnit) 
    {
        this.receiveUserUnit = receiveUserUnit;
    }

    public String getReceiveUserUnit() 
    {
        return receiveUserUnit;
    }

    public void setReceiveUserPosition(String receiveUserPosition) 
    {
        this.receiveUserPosition = receiveUserPosition;
    }

    public String getReceiveUserPosition() 
    {
        return receiveUserPosition;
    }

    public void setReceiveUserPhone(String receiveUserPhone) 
    {
        this.receiveUserPhone = receiveUserPhone;
    }

    public String getReceiveUserPhone() 
    {
        return receiveUserPhone;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }

    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setApprResult(String apprResult) 
    {
        this.apprResult = apprResult;
    }

    public String getApprResult() 
    {
        return apprResult;
    }

    public void setApprUserId(String apprUserId) 
    {
        this.apprUserId = apprUserId;
    }

    public String getApprUserId() 
    {
        return apprUserId;
    }

    public void setApprUserName(String apprUserName) 
    {
        this.apprUserName = apprUserName;
    }

    public String getApprUserName() 
    {
        return apprUserName;
    }

    public void setApprTime(Date apprTime) 
    {
        this.apprTime = apprTime;
    }

    public Date getApprTime() 
    {
        return apprTime;
    }

    public void setDelFlag(Integer delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("warehouseId", getWarehouseId())
            .append("warehouseName", getWarehouseName())
            .append("allocateNumber", getAllocateNumber())
            .append("purpose", getPurpose())
            .append("goodsName", getGoodsName())
            .append("goodsPic", getGoodsPic())
            .append("outTo", getOutTo())
            .append("depart", getDepart())
            .append("outTime", getOutTime())
            .append("address", getAddress())
            .append("receiveUser", getReceiveUser())
            .append("receiveUserUnit", getReceiveUserUnit())
            .append("receiveUserPosition", getReceiveUserPosition())
            .append("receiveUserPhone", getReceiveUserPhone())
            .append("remarks", getRemarks())
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("status", getStatus())
            .append("apprResult", getApprResult())
            .append("apprUserId", getApprUserId())
            .append("apprUserName", getApprUserName())
            .append("apprTime", getApprTime())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
